One key factor to evaluate the success of software development is whether the software meets user's requirements. Therefore, user review is an indispensable step in software development process. The review is collaborative between developers and users. One typical round of user review involves several steps: 1) the developer prepares and presents the current state of the software to the user; 2) the user reviews the software; 3) the user provides feedback; 4) the developer modifies the software according to the user's feedback. Such collaboration may occur repeatedly during the software development process.
The timing and frequency of reviews are important. If the reviews are too infrequent or delayed to a stage that is too late during the development of the software, the user may find that the software does not fulfill the user's requirement and in some cases deviate too far from the user's requirement. Thus, the cost to rectify unfulfilled user requirement would be high. Frequent review, on the other hand, reduces the developer's efficiency. Additionally, the review process itself bears a cost such as, for example, the effort for preparing the software for review, the communication between the developer and the user, etc.